package com.micro.modual.controller;

import com.micro.core.resp.RespJson;
import com.micro.core.resp.RespJsonData;
import com.micro.core.resp.RespJsonPageData;
import com.micro.modual.model.bo.assembledetail.AssembleDetailBO;
import com.micro.modual.model.dto.assembledetail.AssembleDetailDetailDTO;
import com.micro.modual.model.dto.assembledetail.AssembleDetailListDTO;
import com.micro.modual.service.AssembleDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;

import java.util.Map;

/**
 * <h1>拼团详情表 控制器</h1>
 * @author levelcoder
 * @version V1.0.0
 * @email LevelCoder@126.com
 * @date 2020-08-04 00:27:47
 */
@Api(value = "拼团详情管理",tags = "拼团详情管理")
@RestController
@RequestMapping(value = "assembleDetail")
public class AssembleDetailController {

    @Autowired
    private AssembleDetailService assembleDetailService;

    /**
     * <h2>查找拼团详情表 列表</h2>
     * @param params 列表查询请求对象
     * @return List<AssembleDetailListDTO> {@link AssembleDetailListDTO}s  拼团详情表 列表返回对象
     */
    @ApiOperation(value = "查询拼团详情表列表" ,notes = "查询拼团详情表列表")
    @GetMapping(value = "/findAssembleDetailList")
    public RespJsonPageData<AssembleDetailListDTO> findAssembleDetailList(@RequestParam  Map<String,Object> params){
        return assembleDetailService.findList(params,AssembleDetailListDTO.class);
    }

    /**
     * <h2>根据主键编号查看拼团详情表详情</h2>
     * @param id  拼团详情表 主键编号
     * @return {@link AssembleDetailDetailDTO}  拼团详情表 详情
     */
    @ApiOperation(value = "查询拼团详情表详情",notes = "根据主键编号，查询拼团详情表详情")
    @GetMapping(value = "/findAssembleDetailDetail/{id}")
    public RespJsonData<AssembleDetailDetailDTO> findAssembleDetailDetail(@PathVariable("id") Long id){
        return assembleDetailService.findDetail(id,AssembleDetailDetailDTO.class);
    }

    /**
     * <h2>新增拼团详情表详情</h2>
     * @param assembleDetailBO {@link AssembleDetailBO} 拼团详情表 新增/修改 请求对象
     * @return {@link RespJson} 返回结果基础类
     */
    @ApiOperation(value = "新增拼团详情表",notes = "新增拼团详情表")
    @PostMapping(value = "/addAssembleDetail")
    public RespJson addAssembleDetail(@RequestBody AssembleDetailBO assembleDetailBO){
        return assembleDetailService.addAssembleDetail(assembleDetailBO);
    }

    /**
     * <h2>修改拼团详情表详情</h2>
     * @param assembleDetailBO  {@link AssembleDetailBO} 拼团详情表 新增/修改 请求对象
     * @return {@link RespJson} 返回结果基础类
     */
    @ApiOperation(value = "修改拼团详情表",notes = "修改拼团详情表")
    @PostMapping(value = "/editAssembleDetail")
    public RespJson editAssembleDetail(@RequestBody AssembleDetailBO assembleDetailBO){
        return assembleDetailService.editAssembleDetail(assembleDetailBO);
    }

    /**
     * <h2>根据主键编号删除拼团详情表信息</h2>
     * @param id  拼团详情表 主键编号
     * @return  {@link RespJson} 返回结果基础类
     */
    @ApiOperation(value = "删除拼团详情表",notes = "根据地址ID，删除拼团详情表")
    @PostMapping(value = "/deleteAssembleDetail/{id}")
    public RespJson deleteAssembleDetail(@PathVariable("id") Long id){
        return assembleDetailService.deleteAssembleDetail(id);
    }
}

